Міністерство освіти і науки України.
Національний університет “Львівська політехніка”
ІКТАМ
Кафедра ЕОМ
КУРСОВА РОБОТА
з предмету:
“Системне програмування”
на тему:
“Розробка системних програмних модулів та компонент систем програмування”
Львів-2007
АНОТАЦІЯ
Транслятором називається програма перекладу (трансляції) початкової програми, записаною вхідною мовою, в еквівалентну їй об`єктну програму. Якщо мова високого рівня є вхідною, а мова асемблера чи машинна – вихідною, то такий транслятор називається компілятором.
Транслятори дозволяють пререкладати програми із вхідної мови програмування в деяку вихідну, які пізніше, після етапів компіляції та зв`язування, перетворюються у виконавчі файли.
Потреба різноманіття трансляторів дуже важлива, це прямо залежить від вхідної мови, яку він перекладає. Кожна з них реалізує клас задач, необхідних для користувача.
Кажучи простіше, існує виконавець – автомат або персональна ЕОМ, що вміє реалізувати скінчений набір дій. Наказ на виконання дії з вказаного набору, що виражається певним, раніше обумовленим способом, називається розпорядженням, а вся сукупність допустимих наказів – системою розпорядження виконавця.
Даючи завдання виконавцю на деяку роботу, ми звичайно даємо йому не одне розпорядження, а деяку скінчену послідовність розпоряджень, задаючи також порядок, у якому вони виконуються. Така послідовність розпоряджень з вказанням порядку їх виконання називається програмою.
Саме програма на певній мові програмування є вхідним даним для транслятора, що перекладає послідовність команд вхідної мови програмування в деяку вихідну.
ЗАВДАННЯ
Варіант 52;
Розробити транслятор вхідної мови програмування , короткий опис якої подано нижче:
- типи даних: int_4;
- оператор вводу: get ();
- оператор виводу: put ();
- блок тіла програми:
- оператор: do-while (сі);
- регістр ключових слів: Lov;
- регістр ідентифікаторів: Up-Low4 перший символ_;
- операції арифметичні: add, sub, *, /, %;
- операції порівняння: ==, !=, !>, !<
- операції логічні: not, and, or;
- коментар: {* *}
- ідентифікатори змінних, числові константи;
- оператор присвоєння: := ;
Для отримання виконавчого файлу на виході розробленого транслятора скористатися програмами tasm.exe і tlink.exe.
ЗМІСТ
АНОТАЦІЯ 2
ЗАВДАННЯ 3
ВСТУП 6
1. ОГЛЯД МЕТОДІВ ТА СПОСОБІВ ПРОЕКТУВАННЯ ТРАНСЛЯТОРІВ 7 1.1. Введення в трансляцію 7
1.2. Структура транслятора 7
1.3. Проходи транслятора 8
1.4. Засоби побудови трансляторів 9
2. ФОРМАЛЬНИЙ ОПИС ВХІДНОЇ МОВИ ПРОГРАМУВАННЯ 10
2.1. Деталізований опис вхідної мови в термінах розширеної нотації
Бекуса-Наура. 10
2.2. Термінальні символи та ключові слова 11
3. РОЗРОБКА ТРАНСЛЯТОРА ВХІДНОЇ МОВИ ПРОГРАМУВАННЯ 12
3.1. Вибір технології програмування 12
3.2. Проектування таблиць транслятора 13 3.3. Розробка лексичного аналізатора 15
3.4. Розробка синтаксичного та семантичного аналізатора 20
3.5. Розробка генератора коду 24
4. ОПИС ПРОГРАМИ (В ТОМУ ЧИСЛІ ГРАФ-СХЕМ) 25
5. ОПИС ІНТЕРФЕЙСУ ТА ІНСТРУКЦІЯ КОРИСТУВАЧЕВІ 31
6. ВІД ЛАГОДЖЕННЯ ТА ТЕСТУВАННЯ ПРОГРАМИ 32
6.1. Виявлення лексичних помилок 32
6.2. Виявлення синтаксичних помилок 32
6.3. Виявлення семантичних помилок 32
6.4. Загальна перевірка коректності роботи транслятора 33
7. ВИСНОВКИ 34
СПИСОК ЛІТЕРАТУРИ 35
ДО...